﻿@model SGCC.Models.ObraModel
@{
    ViewBag.Title = "AdicionarObra";
    Layout = "~/Views/Shared/_Layout.cshtml";
    
    //Cria uma lista com todos os clientes
    List<SelectListItem> listaClientes = new List<SelectListItem>();

    var clientes = new SGCC.Models.ClienteModel().ListarClientes();
    listaClientes.Add(new SelectListItem()
    {
        Text = "Selecione um cliente",
        Value = null,
        Selected = true
    });
    
    foreach(SGCC.Cliente c in clientes)
    {
        listaClientes.Add(new SelectListItem()
        {
            Text = c.Nome,
            Value = Convert.ToString(c.ClienteId),
            Selected = false   
        });
    }
    
    ViewBag.clientes = listaClientes;

    //Cria uma lista com todos os Engenheiros
    List<SelectListItem> listaEngenheiros = new List<SelectListItem>();

    var engenheiros = new SGCC.Models.EngenheiroModel().ListarEngenheiros();
    listaEngenheiros.Add(new SelectListItem()
    {
        Text = "Selecione um engenheiro",
        Value = null,
        Selected = true
    });
    
    foreach (SGCC.Engenheiro e in engenheiros)
    {
        listaEngenheiros.Add(new SelectListItem()
        {
            Text = e.Nome,
            Value = Convert.ToString(e.EngenheiroId),
            Selected = false
        });


        ViewBag.engenheiros = listaEngenheiros;
    }

    //Cria uma lista com todos os Arquiteto
    List<SelectListItem> listaArquitetos = new List<SelectListItem>();

    var arquitetos = new SGCC.Models.ArquitetoModel().ListarArquitetos();
    listaArquitetos.Add(new SelectListItem()
    {
        Text = "Selecione um arquiteto",
        Value = null,
        Selected = true
    });

    foreach (SGCC.Arquiteto a in arquitetos)
    {
        listaArquitetos.Add(new SelectListItem()
        {
            Text = a.Nome,
            Value = Convert.ToString(a.ArquitetoId),
            Selected = false
        });


        ViewBag.arquitetos = listaArquitetos;
    }

    //Cria uma lista com todos os Tipos de construção
    List<SelectListItem> listaTiposConstrucao = new List<SelectListItem>();

    var tiposConstrucao = new SGCC.Models.TipoConstrucaoModel().ListarTiposContrucao();
    listaTiposConstrucao.Add(new SelectListItem()
    {
        Text = "Selecione um Tipo",
        Value = null,
        Selected = true
    });

    foreach (SGCC.TipoConstrucao tc in tiposConstrucao)
    {
        listaTiposConstrucao.Add(new SelectListItem()
        {
            Text = tc.Nome,
            Value = Convert.ToString(tc.TipoConstrucaoId),
            Selected = false
        });


        ViewBag.tiposConstrucao = listaTiposConstrucao;
    }

    //Cria uma lista com todas os estados
    List<SelectListItem> listaEstados = new List<SelectListItem>();

    var estados = new SGCC.Models.EstadoModel().ListarEstados();
    listaEstados.Add(new SelectListItem()
    {
        Text = "Selecione um Estado",
        Value = null,
        Selected = true
    });

    foreach (SGCC.Estado e in estados)
    {
        listaEstados.Add(new SelectListItem()
        {
            Text = e.Sigla,
            Value = Convert.ToString(e.EstadoId),
            Selected = false
        });
    }

    ViewBag.estados = listaEstados;

    //Cria uma lista com todas as cidades
    List<SelectListItem> listaCidades = new List<SelectListItem>();

    var cidades = new SGCC.Models.CidadeModel().ListarCidades();
    listaCidades.Add(new SelectListItem()
    {
        Text = "Selecione uma cidade",
        Value = null,
        Selected = true
    });

    foreach (SGCC.Cidade c in cidades)
    {
        listaCidades.Add(new SelectListItem()
        {
            Text = c.Nome,
            Value = Convert.ToString(c.CidadeId),
            Selected = false
        });
    }

    ViewBag.cidades = listaCidades;
}


<h2>Adicionar Obra</h2>

<table class="tabela-cadastros">
    @Html.ValidationSummary(true)
    @using (Html.BeginForm("AdicionarObra", "Obra", FormMethod.Post, new { enctype = "multipart/form-data" }))
    {
        <tr>
            <td class="cad-titulo"><label>@Html.LabelFor(o => o.clienteId)</label></td>
            <td>@Html.DropDownListFor(o => o.clienteId, (List<SelectListItem>)ViewBag.clientes, new { @class = "cad-input" })</td>
        </tr>
        <tr>
            <td class="cad-titulo"><label>@Html.LabelFor(o => o.engenheiroId)</label></td>
            <td>@Html.DropDownListFor(o => o.engenheiroId, (List<SelectListItem>)ViewBag.engenheiros, new { @class = "cad-input" })</td>
        </tr>
        <tr>
            <td class="cad-titulo"><label>@Html.LabelFor(o => o.arquitetoId)</label></td>
            <td>@Html.DropDownListFor(o => o.arquitetoId, (List<SelectListItem>)ViewBag.arquitetos, new { @class = "cad-input" })</td>
        </tr>
        <tr>
            <td class="cad-titulo"><label>@Html.LabelFor(o => o.tipoConstrucaoId)</label></td>
            <td>@Html.DropDownListFor(o => o.tipoConstrucaoId, (List<SelectListItem>)ViewBag.tiposConstrucao, new { @class = "cad-input" })</td>
        </tr>
  
        <tr>
            <td class="cad-titulo"><label for="ddEstado">@Html.LabelFor(o => o.estadoId)</label></td>
            <td><select class="filtro-input" id="ddEstado"></select></td>
        </tr>

        <tr>
            <td class="cad-titulo"><label for="ddCidade">@Html.LabelFor(o => o.cidadeId)</label></td>
            <td><select class="filtro-input" id="ddCidade"></select></td>
        </tr>
        <tr>
            <td class="cad-titulo"><label>@Html.LabelFor(o => o.logradouro)</label></td>
            <td>@Html.TextBoxFor(o => o.logradouro, new { @class = "cad-input" })</td>
        </tr>  
        <tr>
            <td class="td-Enviar" colspan="2">
                <input type="reset" value="Limpar" />
                <input type="submit" value="Adicionar" />
            </td>
        </tr>
        @Html.HiddenFor(m => m.estadoId)
        @Html.HiddenFor(m => m.cidadeId)   
    }
</table>
<div>
    @Html.ActionLink("Voltar", "Index")
</div>


<script>
    function carregarEstados() {
        $.getJSON('/estado/get', function (data, status) {
            var estados = $("#ddEstado");

            estados.empty();

            var option = $("<option />");
            option.attr("value", 0).text("Selecione um estado");
            estados.append(option);

            $.each(data, function (i, item) {
                option = $("<option />");
                option.attr("value", item.Id).text(item.Sigla);
                estados.append(option);
            });

            $('#ddEstado option[value="0"]').attr('selected', 'selected');

            carregarCidades();
        });
    }

    function carregarCidades() {
        var estado = $("#ddEstado option:selected").val();

        $("#estadoId").val(estado);

        $.getJSON('/cidade/get?uf=' + estado, function (data) {
            var cidades = $("#ddCidade");

            cidades.empty();

            var option = $("<option />");
            option.attr("value", 0).text("Selecione uma cidade");
            cidades.append(option);

            $.each(data, function (i, item) {
                option = $("<option />");
                option.attr("value", item.Id).text(item.Nome);
                cidades.append(option);
            });

            var cidade = $("#cidadeId").val();

            $('#ddCidade option[value="0"]').prop('selected', true);
        });
    }

    $("#ddEstado").change(function (evt) {
        carregarCidades();
    });

    $("#ddCidade").change(function (evt) {
        var cidade = $("#ddCidade option:selected").val();

        $("#cidadeId").val(cidade);
    });

    carregarEstados();

</script>